pull: Emit a better error if the remote isn't found
authorColin Walters <walters@verbum.org>
Fri, 6 Jun 2014 20:17:05 +0000 (16:17 -0400)
committerColin Walters <walters@verbum.org>
Thu, 19 Jun 2014 08:39:28 +0000 (04:39 -0400)
The generic GKeyFile error isn't quite informative enough here.

I hit this with the new compose process where we don't automatically
inject a configured remote into the generated disk images; we expect
people to add them.

https://bugzilla.gnome.org/show_bug.cgi?id=731346

src/libostree/ostree-repo-pull.c

index dbcdc4050534c01a74e971bd76dcb8d4843e338f..d15e3369d9c4bcf49d6b67e2600da8341182edc9 100644 (file)
@@ -1067,8 +1067,16 @@ ostree_repo_pull (OstreeRepo               *self,
   config = ostree_repo_get_config (self);
 
   remote_key = g_strdup_printf ("remote \"%s\"", pull_data->remote_name);
+  if (!g_key_file_has_group (config, remote_key))
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "No remote '%s' found in " SYSCONFDIR "/ostree/remotes.d",
+                   remote_key);
+      goto out;
+    }
   if (!repo_get_string_key_inherit (self, remote_key, "url", &baseurl, error))
     goto out;
+
   pull_data->base_uri = soup_uri_new (baseurl);
 
 #ifdef HAVE_GPGME